12 - Systemprogrammierung 1 (SP1) [ID:2658]
50 von 664 angezeigt

Ich wünsche Ihnen als erstes mal alles Gute fürs neue Jahr.

Wenn ich sonst immer viel Glück gewünscht habe, kamen hinterher Leute zu mir und haben gemeint, ob man das bei mir so viel bräuchte.

Sie schreiben ja dieses Jahr auch noch eine Klausur wahrscheinlich bei mir.

Ich wünsche Ihnen aber ganz allgemein so. Und ich denke, wenn man sich gerade bei Systemprogrammierung gut vorbereitet hat,

dann braucht man, glaube ich, gar nicht noch extra Glück, sondern dann funktioniert das auch erfahrungsgemäß recht gut alles immer.

So, wir haben die letzten Male uns ja schon mit verschiedenen Betriebssystemabstraktionen beschäftigt.

Wir hatten uns mit der Hintergrundspeicherverwaltung, also Datalsystem, in der vorletzten Vorlesung befasst.

In der letzten Vorlesung war das Thema Hauptspeicherverwaltung und wie man mit dem ganzen umgeht.

Und heute steht jetzt letztendlich das dritte wesentliche Kapitel an, nämlich die Aktivitäten,

das ist eigentlich die CPU und die Abstraktion, die dahinter steckt, sind Prozesse.

Wir kennen das ja bereits. Ich hatte ja schon in der Übergangsphase von der Programmiersprache C

zu den Betriebssystemkonzepten so einen Kapitel eingeschoben, wie man von einem Programm zum Prozess kommt.

Also der Begriff ist ja bekannt. Und ich will heute noch mal ein bisschen auf ein paar Details mehr eingehen.

Was steckt hinter diesem Konzept der Prozesse und vor allem, wenn man mehrere Prozesse hat,

wie interagieren die denn miteinander, worauf muss man achten.

Das Ganze etwas leichtgewichtig heute noch im Rahmen von der Systemprogrammierung 2.

Wir haben noch etliche Kapitel zum Thema Prozesse und wie man Prozesse miteinander koordiniert und so weiter haben.

So, als erstes will ich noch mal das Konzept des Prozesses und verschiedene Modelle, die dahinter stecken, vorstellen.

Und kurz auf das Thema Einplanung von Prozessen, also Scheduling eingehen.

Und dann haben wir zwei weitere Kapitel. Einmal die Koordinierung und Synchronisation von Prozessen und das andere die Kommunikation zwischen Prozessen.

So, wir kennen Prozesse schon. Prozesse sind letztendlich, kann man ganz abstrakt sagen, Programme in Ausführung.

Der Prozess wird also durch ein Programm kontrolliert und exekutiert.

Also er wird letztendlich von einem Prozess ausgeführt.

Prozess kann einerseits bedeuten die Ausführung mehrerer Programme.

Das kennen wir in verschiedenerlei Hinsicht bereits.

Wenn wir ein Programm starten, also ein Prozess starten, dann läuft da drin erst mal ein Anwendungsprogramm.

Aber wenn ein Anwendungsprogramm einen Systemaufruf macht, dann, dieser Systemaufruf bedeutet ja keinen Prozesswechsel,

sondern das ist letztendlich nur der Wechsel des Programms, das der Prozess ausführt.

Das heißt, das Programm springt von der Ausführung des Anwendungsprogramms in die Ausführung des Betriebssystemprogramms und hinterher wieder zurück.

Aber es bleibt der gleiche Prozess.

Also haben wir eigentlich ganz generell immer die Situation, dass ein Prozess auf jeden Fall zwei Programme ausführt.

Ja, und den Exek-Systemaufruf kennen wir ja auch schon.

Und in dem Augenblick wechselt der Prozess das ausgeführte Programm.

Das heißt also, es bleibt der gleiche Prozess, aber er wechselt das Programm, das er ausführt.

Das heißt also, in dem Moment kommt letztendlich das dritte Programm dazu.

Das erste Anwendungsprogramm, das Betriebssystem und nach dem Exek das andere Anwendungsprogramm.

Es bleibt immer noch der gleiche Prozess, aber das, was er tut, ändert sich.

Und es ändert sich eine ganze Menge mehr in dem Zusammenhang.

Es ändert sich natürlich der ganze Speicherlayout in dem Augenblick.

Es können sich sogar die Rechte ändern.

In dem Moment, wo ein anderes Programm gestartet wird, wenn dieses Programm mit speziellen Rollenrechten verknüpft ist.

Ich bin mir jetzt gar nicht mehr ganz sicher, hatten wir diese SBIT-Geschichte irgendwo schon mal in irgendeinem Kontext erwähnt?

Im Rahmen vom Exek.

Wenn ein, also ein Programm liegt ja in einer ausführbaren Datei vor, im Dateisystem.

Und bei den Zugriffsrechten gibt es ja neben diesen normalen Zugriffsrechten, ob man eine Datei lesen darf, ob man schreiben darf oder ob man sie ausführen darf,

noch so ein paar weitere Zugriffsrechte-Bits, diese SBITs unter anderem.

Und so ein SBIT und setUID-BIT bedeutet, dass in dem Augenblick, in dem dieses Programm in einen Prozess reingeladen wird,

die Rechte des Prozesses geändert werden.

Und zwar die Ausführungsrechte von den bisherigen Ausführungsrechten auf die Rechte des Eigentümers des Programms, das da geladen wird.

Also die Rechte des Eigentümers der Datei, in der das Programm steht, das da geladen wird.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:30:20 Min

Aufnahmedatum

2013-01-07

Hochgeladen am

2013-01-09 16:26:36

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen